package com.quizzer.system.domain;

import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.quizzer.common.annotation.Excel;

/**
 * 大类别对象 subject
 *
 * @author ruoyi
 * @date 2025-10-07
 */
public class Subject
{
    private static final long serialVersionUID = 1L;

// DEBUG: id - Long - 大类别ID
    /** 大类别ID */
    private Long id;

// DEBUG: name - String - 大类别名称，例如Java、计算机基础
    /** 大类别名称，例如Java、计算机基础 */
    @Excel(name = "大类别名称，例如Java、计算机基础")
    private String name;

// DEBUG: description - String - 类别描述
    /** 类别描述 */
    @Excel(name = "类别描述")
    private String description;

// DEBUG: imageUrl - String - 大类别图片地址，例如封面图
    /** 大类别图片地址，例如封面图 */
    @Excel(name = "大类别图片地址，例如封面图")
    private String imageUrl;

// DEBUG: sort - Integer - 排序字段，数值越小越靠前
    /** 排序字段，数值越小越靠前 */
    @Excel(name = "排序字段，数值越小越靠前")
    private Integer sort;

// DEBUG: createTime - LocalDateTime - 创建时间
    /** 创建时间 */
    private LocalDateTime createTime;

// DEBUG: updateTime - LocalDateTime - 更新时间
    /** 更新时间 */
    private LocalDateTime updateTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }

    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }

    public void setImageUrl(String imageUrl)
    {
        this.imageUrl = imageUrl;
    }

    public String getImageUrl()
    {
        return imageUrl;
    }

    public void setSort(Integer sort)
    {
        this.sort = sort;
    }

    public Integer getSort()
    {
        return sort;
    }

    public void setCreateTime(LocalDateTime createTime)
    {
        this.createTime = createTime;
    }

    public LocalDateTime getCreateTime()
    {
        return createTime;
    }

    public void setUpdateTime(LocalDateTime updateTime)
    {
        this.updateTime = updateTime;
    }

    public LocalDateTime getUpdateTime()
    {
        return updateTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("description", getDescription())
            .append("imageUrl", getImageUrl())
            .append("sort", getSort())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
